Storage Device Operation Method and Physical Server

ABSTRACT

A storage device operation method is applied to the physical server. A storage card is inserted into the physical server. When a virtual machine on the physical server receives a data read/write instruction, the virtual machine generates an I/O request for a physical storage device, and sends the I/O request to a client in the storage card; the client transmits the I/O request to a server, so that the server performs an I/O operation on the physical storage device based on the I/O request. Since the virtual machine directly sends the I/O request to the client in the storage card without using a hypervisor in the physical server, computing resources of the physical server are conserved.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of Int'l Patent App. No.PCT/CN2017/095912 filed on Aug. 4, 2017, which claims priority toChinese Patent App. No. 201610970830.6 filed on Oct. 28, 2016, which areincorporated by reference.

TECHNICAL FIELD

The present application relates to the field of computer technologies,and in particular, to a storage device operation method and a physicalserver.

BACKGROUND

With rapid development of computer technologies, a distributed storagesystem is increasingly widely applied to large-scale data storagebecause of its advantages such as reliability, inexpensiveness and easyscalability. The distributed storage system can provide storageresources for a physical server, and the distributed storage systemusually may include two software control ends: a client and a server.The client may be configured in the physical server, to provide astorage function for a virtual machine in the physical server, and theserver may be configured in the physical server or another physicalserver, to manage a physical storage device deployed in the distributedstorage system. When the physical server uses the distributed storagesystem, the virtual machine in the physical server usually performs aninput/output (I/O) operation on the physical storage device in thedistributed storage system, to write or read operating data in thevirtual machine into or from the physical storage device.

Currently, the client of the distributed storage system is directlydeployed in the physical server. In this case, if the virtual machine inthe physical server needs to perform an I/O operation on the physicalstorage device in the distributed storage system, the I/O operationneeds to be implemented based on a hypervisor in the physical server.The hypervisor is an intermediate software layer running between aphysical hardware layer and a virtual machine layer, and is responsiblefor coordinating access to hardware resources and for protection betweenvirtual machines. Specifically, as shown in FIG. 1, a correspondencebetween a front-end driver in the virtual machine and a back-end driverin a hypervisor is established, and a correspondence between theback-end driver in the hypervisor and a virtual storage device in aclient is established. Then, the virtual machine can send an I/O requestto the client by using the front-end driver and the back-end driver.When receiving the I/O request, the client can send the I/O request tothe server in the distributed storage system, so that the serverperforms an I/O operation on the physical storage device based on theI/O request.

Because the client of the distributed storage system is directlydeployed in the physical server, during a running process, the clientand the back-end driver in the hypervisor consume physical computingresources, such as a physical central processing unit (CPU) resource andphysical memory, in the physical server. In addition, during a runningprocess, the front-end driver in the virtual machine consumes virtualcomputing resources, such as a virtual CPU resource and virtual memory,in the physical server. Consequently, a relatively large amount ofcomputing resources is consumed during a process of using thedistributed storage system by the physical server.

SUMMARY

To resolve problems of related technologies, embodiments of the presentapplication provide a storage device operation method and a physicalserver. The technical solutions are as follows.

According to a first aspect, a storage device operation method isprovided, and applied to a physical server, where a virtual machine isinstalled on the physical server, and a storage card is inserted intothe physical server; and the method includes: when the virtual machinereceives a data read/write instruction, generating an input/output I/Orequest for a physical storage device; sending, by the virtual machine,the I/O request to a client in the storage card, where the storage cardcan directly communicate with the virtual machine; and when the clientreceives the I/O request, sending the I/O request to a server, so thatthe server performs an I/O operation on the physical storage devicebased on the I/O request, where a distributed storage system includesthe client and the server, the client is configured to provide a storagefunction for the virtual machine, and the server is configured to managethe physical storage device.

It should be noted that an embedded system runs on the storage card. Tobe specific, the storage card may include modules such as a CPU and amemory. For example, the storage card may be a Peripheral ComponentInterconnect (PCI) card or a Peripheral Component Interconnect Express(PCIe) card, or may be another storage card or the like that candirectly communicate with the virtual machine. This is not specificallylimited in this embodiment of the present application.

In this embodiment of the present application, because the storage cardcan directly communicate with the virtual machine, when sending the I/Orequest to the client in the storage card, the virtual machine can sendthe I/O request to the client without using a hypervisor in the physicalserver, thereby saving computing resources of the physical server. Inaddition, because the client in this embodiment of the presentapplication is deployed on the storage card, during a running process,the client consumes computing resources of the storage card rather thancomputing resources of the physical server, thereby further savingcomputing resources of the physical server.

The sending, by the virtual machine, the I/O request to a client in thestorage card includes: sending, by the virtual machine, the I/O requestto a target virtual interface of the storage card, where the targetvirtual interface is a virtual interface corresponding to the virtualmachine; and when the target virtual interface of the storage cardreceives the I/O request, sending the I/O request to a target virtualstorage device in the client, where the target virtual storage device isa virtual storage device corresponding to the target virtual interface.

It should be noted that when the virtual machine sends the I/O requestto the target virtual interface of the storage card, a storage carddriver in the virtual machine may send the I/O request to the targetvirtual interface of the storage card.

In this embodiment of the present application, the virtual machine candirectly send the I/O request to the client by using the target virtualinterface of the storage card without using the hypervisor in thephysical server in this sending process, thereby omitting participationof a front-end driver and a back-end driver in related technologies, andtherefore greatly saving computing resources of the physical server.

Further, before the sending, by the virtual machine, the I/O request toa client in the storage card, the method further includes: when a firstsetting instruction is received, invoking a management interface of thestorage card to generate N virtual interfaces, and invoking a managementinterface of the client to generate M virtual storage devices, where theN virtual interfaces include the target virtual interface, the M virtualstorage devices include the target virtual storage device, and both Nand M are natural numbers not less than 1; and establishing acorrespondence between the target virtual interface and the virtualmachine, and establishing a correspondence between the target virtualinterface and the target virtual storage device.

It should be noted that the first setting instruction may be manuallytriggered by a user, or may be automatically triggered by a managementsystem of the physical server, and the first setting instruction is usedto instruct to establish a communication path between the virtualmachine and the client in the storage card based on the target virtualinterface of the storage card.

In addition, establishing the correspondence between the target virtualinterface and the virtual machine means associating the target virtualinterface with the virtual machine, or means allocating the targetvirtual interface to the virtual machine for use. Establishing thecorrespondence between the target virtual interface and the targetvirtual storage device means associating the target virtual interfacewith the target virtual storage device, or means allocating the targetvirtual storage device to the virtual machine corresponding to thetarget virtual interface for use.

In this embodiment of the present application, the correspondencebetween the target virtual interface and the virtual machine can beestablished, and the correspondence between the target virtual interfaceand the target virtual storage device can be established. The twocorrespondences are established, which means that the communication pathbetween the virtual machine and the client in the storage card isestablished, so that subsequently, the virtual machine sends the I/Orequest to the client in the storage card based on the communicationpath.

The sending, by the virtual machine, the I/O request to a client in thestorage card includes: sending, by the virtual machine, the I/O requestto a physical interface of the storage card; and when the physicalinterface of the storage card receives the I/O request, sending the I/Orequest to a virtual storage device in the client.

It should be noted that when the virtual machine sends the I/O requestto the physical interface of the storage card, the storage card driverin the virtual machine may send the I/O request to the physicalinterface of the storage card.

In this embodiment of the present application, the virtual machine candirectly send the I/O request to the client by using the physicalinterface of the storage card without using the hypervisor in thephysical server in this sending process, thereby omitting participationof a front-end driver and a back-end driver in related technologies, andtherefore greatly saving computing resources of the physical server.

Further, before the sending, by the virtual machine, the I/O request toa client in the storage card, the method further includes: when a secondsetting instruction is received, invoking a management interface of theclient to generate M virtual storage devices; and establishing acorrespondence between the physical interface of the storage card andthe virtual machine, and establishing a correspondence between thephysical interface of the storage card and the M virtual storagedevices.

It should be noted that the second setting instruction may be manuallytriggered by a user, or may be automatically triggered by a managementsystem of the physical server, and the second setting instruction isused to instruct to establish a communication path between the virtualmachine and the client in the storage card based on the physicalinterface of the storage card.

In this embodiment of the present application, the correspondencebetween the physical interface of the storage card and the virtualmachine can be established, and the correspondence between the physicalinterface of the storage card and the M virtual storage devices can beestablished. The two correspondences are established, which means thatthe communication path between the virtual machine and the client in thestorage card is established, so that subsequently, the virtual machinesends the I/O request to the client in the storage card based on thecommunication path.

It should be noted that the server is deployed on the storage card; orthe server is deployed on another physical server different from thephysical server.

According to a second aspect, a physical server is provided, where avirtual machine is installed on the physical server, and a storage cardis inserted into the physical server; and the physical server includes:the virtual machine configured to: when receiving a data read/writeinstruction, generate an input/output I/O request for a physical storagedevice, where the virtual machine is further configured to send the I/Orequest to a client in the storage card, where the storage card candirectly communicate with the virtual machine; and the client configuredto: when receiving the I/O request, send the I/O request to a server, sothat the server performs an I/O operation on the physical storage devicebased on the I/O request, where a distributed storage system includesthe client and the server, the client is configured to provide a storagefunction for the virtual machine, and the server is configured to managethe physical storage device.

The virtual machine is further configured to send the I/O request to atarget virtual interface of the storage card, where the target virtualinterface is a virtual interface corresponding to the virtual machine;and the storage card is configured to: when the target virtual interfacereceives the I/O request, send the I/O request to a target virtualstorage device in the client, where the target virtual storage device isa virtual storage device corresponding to the target virtual interface.

Further, the physical server further includes: a processor configuredto: when receiving a first setting instruction, invoke a managementinterface of the storage card to generate N virtual interfaces, andinvoke a management interface of the client to generate M virtualstorage devices, where the N virtual interfaces include the targetvirtual interface, the M virtual storage devices include the targetvirtual storage device, and both N and M are natural numbers not lessthan 1, where the processor is further configured to establish acorrespondence between the target virtual interface and the virtualmachine, and establish a correspondence between the target virtualinterface and the target virtual storage device.

The virtual machine is further configured to send the I/O request to aphysical interface of the storage card; and the storage card isconfigured to: when the physical interface receives the I/O request,send the I/O request to a virtual storage device in the client.

Further, the physical server further includes: a processor configuredto: when receiving a second setting instruction, invoke a managementinterface of the client to generate M virtual storage devices, where theprocessor is further configured to establish a correspondence betweenthe physical interface of the storage card and the virtual machine, andestablish a correspondence between the physical interface of the storagecard and the M virtual storage devices.

It should be noted that the server is deployed on the storage card; orthe server is deployed on another physical server different from thephysical server.

According to a third aspect, a physical server is provided, where thephysical server includes a first processor and a first memory, a storagecard is inserted into the physical server, and the storage card includesa second processor and a second memory.

The first processor executes an instruction in the first memory, so thatthe physical server performs the following operations: when a dataread/write instruction is received, generating an input/output I/Orequest for a physical storage device; and sending the I/O request to aclient in the storage card, where the storage card can directlycommunicate with the virtual machine.

The second processor executes an instruction in the second memory, sothat the storage card performs the following operation: when the I/Orequest is received, sending the I/O request to a server, so that theserver performs an I/O operation on the physical storage device based onthe I/O request, where a distributed storage system includes the clientand the server, the client is configured to provide a storage functionfor the virtual machine, and the server is configured to manage thephysical storage device.

The first processor executes the instruction in the first memory, sothat the physical server further performs the following operation:sending the I/O request to a target virtual interface of the storagecard, where the target virtual interface is a virtual interfacecorresponding to the virtual machine.

The second processor executes the instruction in the second memory, sothat the storage card performs the following operation: when the targetvirtual interface receives the I/O request, sending the I/O request to atarget virtual storage device in the client, where the target virtualstorage device is a virtual storage device corresponding to the targetvirtual interface.

Further, the first processor executes the instruction in the firstmemory, so that the physical server further performs the followingoperations: when a first setting instruction is received, invoking amanagement interface of the storage card to generate N virtualinterfaces, and invoking a management interface of the client togenerate M virtual storage devices, where the N virtual interfacesinclude the target virtual interface, the M virtual storage devicesinclude the target virtual storage device, and both N and M are naturalnumbers not less than 1; and establishing a correspondence between thetarget virtual interface and the virtual machine, and establishing acorrespondence between the target virtual interface and the targetvirtual storage device.

The first processor executes the instruction in the first memory, sothat the physical server further performs the following operation:sending the I/O request to a physical interface of the storage card.

The second processor executes the instruction in the second memory, sothat the storage card further performs the following operation: when thephysical interface receives the I/O request, sending the I/O request toa virtual storage device in the client.

Further, the first processor executes the instruction in the firstmemory, so that the physical server further performs the followingoperations: when a second setting instruction is received, invoking amanagement interface of the client to generate M virtual storagedevices; and establishing a correspondence between the physicalinterface of the storage card and the virtual machine, and establishinga correspondence between the physical interface of the storage card andthe M virtual storage devices.

It should be noted that the server is deployed on the storage card; orthe server is deployed on another physical server different from thephysical server.

According to a fourth aspect, an embodiment of the present applicationprovides a computer storage medium configured to store a computersoftware instruction used by the physical servers provided in the secondaspect and the third aspect, or configured to store a program designedfor the physical server according to the second aspect and the thirdaspect.

Technical effects obtained in the second aspect and the third aspect ofthe foregoing embodiments of the present application are similar tothose obtained by using a corresponding technical means in the firstaspect, and details are not described herein again.

Beneficial effects brought by the technical solutions provided in theembodiments of the present application are as follows: In theembodiments of the present application, when receiving the dataread/write instruction, the virtual machine generates the input/outputI/O request for the physical storage device, and sends the I/O requestto the client in the storage card. Because the storage card can directlycommunicate with the virtual machine, when sending the I/O request tothe client in the storage card, the virtual machine can directly sendthe I/O request to the client without using the hypervisor in thephysical server, thereby saving computing resources of the physicalserver. Then, when receiving the I/O request, the client sends the I/Orequest to the server, so that the server performs an I/O operation onthe physical storage device based on the I/O request. Because the clientin the embodiments of the present application is deployed on the storagecard, during a running process, the client consumes computing resourcesof the storage card rather than computing resources of the physicalserver, thereby further saving computing resources of the physicalserver.

BRIEF DESCRIPTION OF DRAWINGS

To describe the technical solutions in the embodiments of the presentapplication more clearly, the following briefly describes theaccompanying drawings for describing the embodiments. The accompanyingdrawings in the following description show merely some embodiments ofthe present application, and a person of ordinary skill in the art maystill derive other drawings from these accompanying drawings withoutcreative efforts.

FIG. 1 is a schematic diagram of a storage device operation methodaccording to related technologies;

FIG. 2A is a schematic diagram of a converged deployment manner of adistributed storage system according to an embodiment of the presentapplication;

FIG. 2B is a schematic diagram of a separate deployment manner of adistributed storage system according to an embodiment of the presentapplication;

FIG. 2C is a schematic diagram of another converged deployment manner ofa distributed storage system according to an embodiment of the presentapplication;

FIG. 2D is a schematic diagram of another separate deployment manner ofa distributed storage system according to an embodiment of the presentapplication;

FIG. 3 is a schematic structural diagram of a physical server accordingto an embodiment of the present application;

FIG. 4A is a flowchart of a storage device operation method according toan embodiment of the present application;

FIG. 4B is a schematic diagram of a correspondence according to anembodiment of the present application;

FIG. 4C is a schematic diagram of another correspondence according to anembodiment of the present application;

FIG. 5 is a schematic structural diagram of another physical serveraccording to an embodiment of the present application; and

FIG. 6 is a schematic structural diagram of still another physicalserver according to an embodiment of the present application.

DESCRIPTION OF EMBODIMENTS

To make the objectives, technical solutions, and advantages of thepresent application clearer, the following further describes theembodiments of the present application in detail with reference to theaccompanying drawings.

Before the embodiments of the present application are explained anddescribed in detail, an application scenario of the embodiments of thepresent application is first described. A distributed storage system canprovide storage resources for a physical server, and the distributedstorage system usually may include a client and a server. The client isconfigured to provide a storage function for a virtual machine in thephysical server, and the server is configured to manage a physicalstorage device deployed in the distributed storage system.

The distributed storage system is mainly deployed in two manners:converged deployment and separate deployment. FIG. 2A is a schematicdiagram of a converged deployment manner of a distributed storagesystem. As shown in FIG. 2A, both a client and a server may be deployedon a same physical server, and a client on each physical server canaccess a server on the physical server, and can also access a server onanother physical server. FIG. 2B is a schematic diagram of a separatedeployment manner of a distributed storage system. As shown in FIG. 2B,a client and a server may be deployed separately on different physicalservers, and each client can access servers on a plurality of differentphysical servers.

It should be noted that, in the embodiments of the present application,the client of the distributed storage system may be deployed on astorage card, and the storage card may be inserted into a physicalserver. In this case, when the distributed storage system is deployed ina converged manner, as shown in FIG. 2C, both the client and the serverof the distributed storage system may be deployed on the storage card, aclient in each storage card can access a server in the storage card, andcan also access a server in another storage card by using a networkinterface of the storage card, and the server in each storage card canmanage a physical storage device by using a disk interface of thestorage card. When the distributed storage system is deployed in aseparate manner, as shown in FIG. 2D, only a client of the distributedstorage system may be deployed on a storage card, a server of thedistributed storage system is directly deployed on a physical server,and each client can access servers on a plurality of different physicalservers by using a network interface of the storage card. The networkinterface of the storage card is configured to connect to a network. Forexample, the network interface of the storage card may be directlyconnected to a network cable, an optical fiber cable, and the like.

It should be noted that when the storage card is inserted into aphysical server, the storage card can directly communicate with avirtual machine in the physical server. To be specific, the storage cardcan be allocated in a pass-through manner to the virtual machine in thephysical server for use. In addition, an embedded system runs on thestorage card. To be specific, the storage card may include modules suchas a CPU and a memory. For example, the storage card may be a PCI cardor a PCIe card, or may be another storage card that has a pass-throughfunction, or the like. This is not specifically limited in theembodiments of the present application.

In addition, when the storage card is inserted into the physical server,the storage card may be directly inserted into the physical server byusing a physical bus. For example, when the storage card is a PCI card,the PCI card can be inserted into the physical server by using a PCIbus; or when the storage card is a PCIe card, the PCIe card can beinserted into the physical server by using a PCIe bus.

FIG. 3 is a schematic structural diagram of a physical server accordingto an embodiment of the present application. The physical server may bethe physical server, shown in FIG. 2C or FIG. 2D, into which a storagecard is inserted. Referring to FIG. 3, the physical server includes atleast one processor 301, a communications bus 302, a memory 303, and atleast one communications interface 304.

The processor 301 may be a general purpose CPU, a microprocessor, anapplication-specific integrated circuit (ASIC), or one or moreintegrated circuits configured to control program execution in thesolutions of the present application.

The communications bus 302 may include a path, to transfer informationbetween the foregoing components.

The memory 303 may be a read-only memory (ROM), a random-access memory(RAM), another type of static storage device capable of storing staticinformation and an instruction, or another type of dynamic storagedevice capable of storing information and an instruction, or may be anelectrically erasable programmable read-only memory (EEPROM), a compactdisc read-only memory (CD-ROM) or another compact disc storage, opticaldisc storage (including a compact disc, a laser disc, an optical disc, adigital versatile disc, a Blu-ray disc, and the like), a magnetic diskstorage medium, or another magnetic storage device, or any other mediumthat can carry or store expected program code having an instruction ordata structure form and can be accessed by the physical server. However,this is not limited thereto. The memory 303 may exist independently, orthe memory 303 is connected to the processor 301 by using thecommunications bus 302, or integrated with the processor 301.

The communications interface 304 uses any apparatus such as atransceiver to communicate with another device or a communicationsnetwork, for example, an Ethernet, a radio access network (RAN), or awireless local area network (WLAN).

During specific implementation, in an embodiment, the processor 301 mayinclude one or more CPUs, for example, a CPU 0 and a CPU 1 shown in FIG.3.

During specific implementation, in an embodiment, the physical servermay include a plurality of processors, for example, the processor 301and a processor 305 shown in FIG. 3. Each of these processors may be asingle-core processor (single-CPU), or may be a multi-core processor(multi-CPU). The processor herein may be one or more devices, circuits,and/or processing cores configured to process data.

The memory 303 is configured to store program code 310 that executes thesolutions of the present application, and the processor 301 isconfigured to execute the program code 310 stored in the memory 303. Thephysical server can implement a storage device operation method providedin the following embodiment shown in FIG. 4A by using the processor 301and the program code 310 in the memory 303.

FIG. 4A is a flowchart of a storage device operation method according toan embodiment of the present application. The method is applied to aphysical server. Referring to FIG. 4A, the method includes the followingsteps.

Step 401: When a virtual machine installed on the physical serverreceives a data read/write instruction, generate an I/O request for aphysical storage device.

It should be noted that the virtual machine may be installed on thephysical server, and a storage card may be inserted into the physicalserver. The storage card can directly communicate with the virtualmachine. To be specific, the storage card can communicate with thevirtual machine without using a hypervisor in the physical server.

In addition, the data read/write instruction may be manually triggeredby a user, or may be automatically triggered by a management system ofthe physical server, and the data read/write instruction is used toinstruct to read data from or write data into the physical storagedevice.

Specifically, an application in the virtual machine may receive the dataread/write instruction, then a file system in the virtual machine mayconvert the data read/write instruction into an access request for alogical block, and then a generic block layer in the virtual machine mayconvert the access request for the logical block into the I/O requestfor the physical storage device. Certainly, in practical application,when receiving the data read/write instruction, the virtual machine mayalternatively generate the I/O request for the physical storage devicein another manner. This is not specifically limited in this embodimentof the present application.

It should be noted that, for an operation of generating the I/O requestfor the physical storage device when the virtual machine receives thedata read/write instruction, reference may be made to relatedtechnologies. This is not described in detail in this embodiment of thepresent application.

Step 402: The virtual machine sends the I/O request to a client in astorage card.

In order to help the virtual machine send the I/O request to the clientin the storage card, further, before the virtual machine sends the I/Orequest to the client in the storage card, a communication path betweenthe virtual machine and the client in the storage card needs to be firstestablished. In addition, an operation of establishing the communicationpath between the virtual machine and the client in the storage card maybe implemented in the following manner 1 and manner 2.

Manner 1: When a first setting instruction is received, a managementinterface of the storage card is invoked to generate N virtualinterfaces, and a management interface of the client is invoked togenerate M virtual storage devices. The N virtual interfaces include atarget virtual interface, the M virtual storage devices include a targetvirtual storage device, and both N and M are natural numbers not lessthan 1. A correspondence between the target virtual interface and thevirtual machine is established, and a correspondence between the targetvirtual interface and the target virtual storage device is established.

It should be noted that the first setting instruction may be manuallytriggered by the user, or may be automatically triggered by themanagement system of the physical server, and the first settinginstruction is used to instruct to establish the communication pathbetween the virtual machine and the client in the storage card based onthe target virtual interface of the storage card.

When the management interface of the storage card is invoked to generatethe N virtual interfaces, if the storage card supports the single-rootI/O virtualization (SR-IOV) technology, the N virtual interfaces can begenerated in the storage card by using the SR-IOV technology supportedby the storage card. Certainly, in practical application, the managementinterface of the storage card may alternatively be invoked in anothermanner to generate the N virtual interfaces. This is not specificallylimited in this embodiment of the present application.

It should be noted that the SR-IOV technology is a hardware-basedvirtualization support technology, and the SR-IOV technology is used tocreate, in a physical device, a plurality of virtual function (VF)interfaces that are associated with a physical function (PF) interface.The plurality of created VF interfaces can be directly allocated to thevirtual machine for use, so that resources of the physical device areshared among the plurality of VF interfaces. In this embodiment of thepresent application, if the virtual interface of the storage card isgenerated by using the SR-IOV technology, the virtual interface of thestorage card may be a VF interface.

When the management interface of the client is invoked to generate the Mvirtual storage devices, the management interface of the client can beinvoked by using the management interface of the storage card, togenerate the M virtual storage devices. Certainly, in practicalapplication, the management interface of the client may alternatively beinvoked in another manner to generate the M virtual storage devices.This is not specifically limited in this embodiment of the presentapplication.

It should be noted that, establishing the correspondence between thetarget virtual interface and the virtual machine means associating thetarget virtual interface with the virtual machine, or means allocatingthe target virtual interface to the virtual machine for use.Establishing the correspondence between the target virtual interface andthe target virtual storage device means associating the target virtualinterface with the target virtual storage device, or means allocatingthe target virtual storage device to the virtual machine correspondingto the target virtual interface for use.

In addition, operations of establishing the correspondence between thetarget virtual interface and the virtual machine and establishing thecorrespondence between the target virtual interface and the targetvirtual storage device may be performed by the hypervisor in thephysical server. In this case, the hypervisor in the physical server canexchange information with the storage card by using the managementinterface of the storage card. Certainly, in practical application, theoperations may alternatively be performed by another module in thephysical server. This is not specifically limited in this embodiment ofthe present application.

Furthermore, during establishment of the correspondence between thetarget virtual interface and the virtual machine, the target virtualinterface may be directly allocated to the virtual machine for use, toimplement that the target virtual interface corresponds to the virtualmachine. In addition, after the target virtual interface is allocated tothe virtual machine for use, if the virtual machine detects the targetvirtual interface, a storage card driver pre-installed on the virtualmachine may be loaded. The storage card driver may report the storagecard as a disk controller, and scan a virtual storage device in the diskcontroller, that is, scan the target virtual storage devicecorresponding to the target virtual interface in this embodiment of thepresent application. After the scanning is completed, the virtualmachine can learn a target virtual storage device that can be used inthe storage card by the virtual machine, and subsequently the virtualmachine can use the target virtual storage device.

For example, the virtual machine is a virtual machine 1, the targetvirtual interface is a virtual interface 1, and the target virtualstorage device is a virtual storage device 1. In this case, thecorrespondence between the virtual machine and the target virtualinterface and the correspondence between the target virtual interfaceand the target virtual storage device are shown in FIG. 4B.

It should be noted that, in practical application, after the N virtualinterfaces of the storage card are generated, the correspondence betweenthe target virtual interface and the virtual machine can be established,and the correspondence between the target virtual interface and thetarget virtual storage device can also be established. Certainly,correspondences between the N virtual interfaces and a plurality ofvirtual machines in the physical server may be established, andcorrespondences between the N virtual interfaces and a plurality ofvirtual storage devices in the client may be established, so as toestablish a communication path between the plurality of virtual machinesin the physical server and the client, thereby facilitating subsequentuse of the client by the plurality of virtual machines.

For example, a one-to-one correspondence between the N virtualinterfaces and N virtual machines in the physical server may beestablished; or a correspondence between each virtual machine in thephysical server and at least one of the N virtual interfaces may beestablished. For another example, a one-to-one correspondence betweenthe N virtual interfaces and the N virtual storage devices in the clientmay be established; or a correspondence between each virtual interfacein the N virtual interfaces and at least one virtual storage device inthe client may be established.

Manner 2: When a second setting instruction is received, a managementinterface of the client is invoked to generate M virtual storagedevices; and a correspondence between a physical interface of thestorage card and the virtual machine is established, and acorrespondence between the physical interface of the storage card andthe M virtual storage devices is established.

It should be noted that the second setting instruction may be manuallytriggered by the user, or may be automatically triggered by themanagement system of the physical server, and the second settinginstruction is used to instruct to establish the communication pathbetween the virtual machine and the client in the storage card based onthe physical interface of the storage card.

In addition, the physical interface of the storage card may be a PFinterface of the storage card or the like. This is not specificallylimited in this embodiment of the present application.

Establishing the correspondence between the physical interface of thestorage card and the virtual machine means associating the physicalinterface of the storage card with the virtual machine, or meansallocating the physical interface of the storage card to the virtualmachine for use. Establishing the correspondence between the physicalinterface of the storage card and the M virtual storage devices meansassociating the physical interface of the storage card with the Mvirtual storage devices, or means allocating the M virtual storagedevices to the virtual machine corresponding to the physical interfaceof the storage card for use.

It should be noted that operations of establishing the correspondencebetween the physical interface of the storage card and the virtualmachine and establishing the correspondence between the physicalinterface of the storage card and the M virtual storage devices may beperformed by the hypervisor in the physical server. In this case, thehypervisor in the physical server can exchange information with thestorage card by using the management interface of the storage card.Certainly, in practical application, the operations may alternatively beperformed by another module in the physical server. This is notspecifically limited in this embodiment of the present application.

In addition, during establishment of the correspondence between thephysical interface of the storage card and the virtual machine, thephysical interface of the storage card may be directly allocated to thevirtual machine for use, to implement that the physical interface of thestorage card corresponds to the virtual machine. In addition, after thephysical interface of the storage card is allocated to the virtualmachine for use, if the virtual machine detects the physical interfaceof the storage card, a storage card driver pre-installed on the virtualmachine may be loaded. The storage card driver may report the storagecard as a disk controller, and scan a virtual storage device in the diskcontroller, that is, scan the M virtual storage devices corresponding tothe physical interface of the storage card in this embodiment of thepresent application. After the scanning is completed, the virtualmachine can learn M virtual storage devices that can be used in thestorage card by the virtual machine, and subsequently the virtualmachine can use the M virtual storage devices.

For example, the virtual machine is a virtual machine 1, and the Mvirtual storage devices are a virtual storage device 1 and a virtualstorage device 2. The correspondence between the virtual machine and thephysical interface of the storage card and the correspondence betweenthe physical interface of the storage card and the M virtual storagedevices are shown in FIG. 4C.

It should be noted that, in this embodiment of the present application,after the communication path between the virtual machine and the clientin the storage card is established in the foregoing manner 1 and manner2, the virtual machine can send the I/O request to the client in thestorage card based on the communication path. Specifically, after thecommunication path between the virtual machine and the client in thestorage card is established in the foregoing manner 1, the virtualmachine may send the I/O request to the client in the storage card inthe following manner (1); or after the communication path between thevirtual machine and the client in the storage card is established in theforegoing manner 2, the virtual machine may send the I/O request to theclient in the storage card in the following manner (2).

Manner (1): The virtual machine sends the I/O request to the targetvirtual interface of the storage card, where the target virtualinterface is a virtual interface corresponding to the virtual machine.When receiving the I/O request, the target virtual interface of thestorage card sends the I/O request to the target virtual storage devicein the client, where the target virtual storage device is a virtualstorage device corresponding to the target virtual interface.

It should be noted that when the virtual machine sends the I/O requestto the target virtual interface of the storage card, the storage carddriver in the virtual machine may send the I/O request to the targetvirtual interface of the storage card.

The correspondence between the virtual machine and the target virtualinterface of the storage card and the correspondence between the targetvirtual interface of the storage card and the target virtual storagedevice in the client are pre-established in the foregoing manner 1.Therefore, when the virtual machine needs to send the I/O request to theclient in the storage card, the virtual machine can directly send theI/O request to the client by using the target virtual interface of thestorage card.

Manner (2): The virtual machine sends the I/O request to the physicalinterface of the storage card. When receiving the I/O request, thephysical interface of the storage card sends the I/O request to thevirtual storage device in the client.

It should be noted that when the virtual machine sends the I/O requestto the physical interface of the storage card, the storage card driverin the virtual machine may send the I/O request to the physicalinterface of the storage card.

The correspondence between the virtual machine and the physicalinterface of the storage card and the correspondence between thephysical interface of the storage card and the virtual storage device inthe client are pre-established in the foregoing manner 2. Therefore,when the virtual machine needs to send the I/O request to the client inthe storage card, the virtual machine can directly send the I/O requestto the client by using the physical interface of the storage card.

It should be noted that, in related technologies, because a client isdirectly deployed on a physical server, a virtual machine needs to sendan I/O request to the client by using a hypervisor; and because in thissending process, there is a need for joint participation of a front-enddriver in the virtual machine and a back-end driver in the hypervisor,the physical server consumes a relatively large amount of computingresources. However, in this embodiment of the present application, theclient is deployed on the storage card, and the storage card candirectly communicate with the virtual machine. Therefore, the virtualmachine can directly send the I/O request to the client without usingthe hypervisor, thereby omitting participation of the front-end driverand the back-end driver, and greatly saving computing resources of thephysical server. In addition, because the client in this embodiment ofthe present application is deployed on the storage card, during arunning process, the client consumes computing resources of the storagecard rather than computing resources of the physical server, therebyfurther saving computing resources of the physical server.

Step 403: When receiving the I/O request, the client sends the I/Orequest to a server, so that the server performs an I/O operation on thephysical storage device based on the I/O request.

It should be noted that when the server is also deployed on the storagecard, the client can directly send the I/O request to the server; orwhen the server is not deployed on the storage card, the client can sendthe I/O request to the server by using a network interface of thestorage card.

In addition, for a process of performing the I/O operation on thephysical storage device based on the I/O request, refer to relatedtechnologies. This is not described in detail in this embodiment of thepresent application.

In this embodiment of the present application, when receiving the dataread/write instruction, the virtual machine generates the input/outputI/O request for the physical storage device, and sends the I/O requestto the client in the storage card. Because the storage card can directlycommunicate with the virtual machine, when sending the I/O request tothe client in the storage card, the virtual machine can directly sendthe I/O request to the client without using the hypervisor in thephysical server, thereby saving computing resources of the physicalserver. Then, when receiving the I/O request, the client sends the I/Orequest to the server, so that the server performs an I/O operation onthe physical storage device based on the I/O request. Because the clientin this embodiment of the present application is deployed on the storagecard, during a running process, the client consumes computing resourcesof the storage card rather than computing resources of the physicalserver, thereby further saving computing resources of the physicalserver.

FIG. 5 is a schematic structural diagram of a physical server accordingto an embodiment of the present application. The physical server may bethe physical server shown in FIG. 3. Referring to FIG. 5, a virtualmachine 501 is installed on the physical server, a storage card 502 isinserted into the physical server, and a client 503 is deployed in thestorage card 502. The physical server includes: the virtual machine 501configured to perform step 401 in the embodiment shown in FIG. 4A, wherethe virtual machine 501 is further configured to perform step 402 in theembodiment shown in FIG. 4A; and the client 503 configured to performstep 403 in the embodiment shown in FIG. 4A.

A distributed storage system includes the client 503 and a server, theclient 503 is configured to provide a storage function for the virtualmachine 501, and the server is configured to manage a physical storagedevice.

Optionally, the virtual machine 501 and the storage card 502 areconfigured to perform manner (1) in step 402 in the embodiment shown inFIG. 4A.

Optionally, the physical server further includes: a processor configuredto perform manner 1 in step 402 in the embodiment shown in FIG. 4A.

Optionally, the virtual machine 501 and the storage card 502 areconfigured to perform manner (2) in step 402 in the embodiment shown inFIG. 4A.

Optionally, the processor is further configured to perform manner 2 instep 402 in the embodiment shown in FIG. 4A.

Optionally, the server is deployed on the storage card 502; or theserver is deployed on another physical server different from thephysical server.

In this embodiment of the present application, when receiving a dataread/write instruction, the virtual machine generates an input/outputI/O request for the physical storage device, and sends the I/O requestto the client in the storage card. Because the storage card can directlycommunicate with the virtual machine, when sending the I/O request tothe client in the storage card, the virtual machine can directly sendthe I/O request to the client without using a hypervisor in the physicalserver, thereby saving computing resources of the physical server. Then,when receiving the I/O request, the client sends the I/O request to theserver, so that the server performs an I/O operation on the physicalstorage device based on the I/O request. Because the client in thisembodiment of the present application is deployed on the storage card,during a running process, the client consumes computing resources of thestorage card rather than computing resources of the physical server,thereby further saving computing resources of the physical server.

FIG. 6 is a schematic structural diagram of a physical server accordingto an embodiment of the present application. The physical server may bethe physical server shown in FIG. 3. Referring to FIG. 6, the physicalserver includes a first processor 601 and a first memory 602, a storagecard is inserted into the physical server, and the storage card includesa second processor 603 and a second memory 604.

The first processor 601 executes an instruction in the first memory 602,so that the physical server performs step 401 and step 402 in theembodiment shown in FIG. 4A.

The second processor 603 executes an instruction in the second memory604, so that the storage card performs step 403 in the embodiment shownin FIG. 4A.

A distributed storage system includes a client and a server, the clientis configured to provide a storage function for a virtual machine, andthe server is configured to manage a physical storage device.

Optionally, the first processor 601 executes the instruction in thefirst memory 602, so that the physical server further performs thefollowing operation: sending an I/O request to a target virtualinterface of the storage card, where the target virtual interface is avirtual interface corresponding to the virtual machine.

The second processor 603 executes the instruction in the second memory604, so that the storage card performs the following operation: when thetarget virtual interface receives the I/O request, sending the I/Orequest to a target virtual storage device in the client, where thetarget virtual storage device is a virtual storage device correspondingto the target virtual interface.

Optionally, the first processor 601 executes the instruction in thefirst memory 602, so that the physical server further performs manner 1in step 402 in the embodiment shown in FIG. 4A.

Optionally, the first processor 601 executes the instruction in thefirst memory 602, so that the physical server further performs thefollowing operation: sending the I/O request to a physical interface ofthe storage card.

The second processor 603 executes the instruction in the second memory604, so that the storage card performs the following operation: when thephysical interface receives the I/O request, sending the I/O request toa virtual storage device in the client.

Further, the first processor 601 executes the instruction in the firstmemory 602, so that the physical server further performs manner 2 instep 402 in the embodiment shown in FIG. 4A.

It should be noted that the server is deployed on the storage card; orthe server is deployed on another physical server different from thephysical server.

In this embodiment of the present application, when receiving a dataread/write instruction, the virtual machine generates the input/outputI/O request for the physical storage device, and sends the I/O requestto the client in the storage card. Because the storage card can directlycommunicate with the virtual machine, when sending the I/O request tothe client in the storage card, the virtual machine can directly sendthe I/O request to the client without using a hypervisor in the physicalserver, thereby saving computing resources of the physical server. Then,when receiving the I/O request, the client sends the I/O request to theserver, so that the server performs an I/O operation on the physicalstorage device based on the I/O request. Because the client in thisembodiment of the present application is deployed on the storage card,during a running process, the client consumes computing resources of thestorage card rather than computing resources of the physical server,thereby further saving computing resources of the physical server.

It should be noted that, the physical server provided in the foregoingembodiment is based on a same concept as the storage device operationmethod embodiment. For a specific implementation process thereof, referto the method embodiment. Details are not described herein again.

A person of ordinary skill in the art may understand that all or some ofthe steps of the embodiments may be implemented by hardware or a programinstructing related hardware. The program may be stored in a computerreadable storage medium. The foregoing storage medium may be a read-onlymemory, a magnetic disk, a compact disc, or the like.

The foregoing descriptions are merely exemplary embodiments of thepresent application, but are not intended to limit the presentapplication. Any modification, equivalent replacement, and improvementmade without departing from the spirit and principle of the presentapplication shall fall within the protection scope of the presentapplication.

1. A storage device operation method comprising: receiving, by a virtualmachine installed on a first physical server, a data read/writeinstruction; generating, by the virtual machine, an input/output (I/O)request according to the data read/write instruction; sending, by thevirtual machine and to a storage card, the I/O request, wherein thestorage card is a physical card inserted into the first physical server,wherein a client of a distributed storage system is deployed on thestorage card, and wherein the storage card directly communicates withthe virtual machine through a pre-established communication path betweenthe virtual machine and the client; and sending, by the client to aserver of the distributed storage system, the I/O request to prompt theserver to perform an I/O operation on a physical storage device.
 2. Thestorage device operation method of claim 1, wherein sending the I/Orequest to the storage card comprises: sending, by the virtual machineto a first virtual interface of the storage card, the I/O request,wherein the first virtual interface corresponds to the virtual machine;and sending, by the first virtual interface to a first virtual storagedevice in the client, the I/O request, wherein the first virtual storagedevice corresponds to the first virtual interface.
 3. The storage deviceoperation method of claim 2, wherein before sending the I/O request tothe storage card, the method further comprises: invoking, by a processorof the first physical server when receiving a first setting instruction,a first management interface of the storage card to generate N virtualinterfaces; invoking, by the processor, a second management interface ofthe client to generate M virtual storage devices, wherein the N virtualinterfaces comprise the first virtual interface, wherein the M virtualstorage devices comprise the first virtual storage device, and whereinboth N and M are positive integers; establishing, by the processor, afirst correspondence between the first virtual interface and the virtualmachine; and establishing, by the processor, a second correspondencebetween the first virtual interface and the first virtual storagedevice.
 4. The storage device operation method of claim 3, whereinsending the I/O request to the storage card comprises: sending, by thevirtual machine, the I/O request to a physical interface of the storagecard; and sending, by the physical interface, the I/O request to thefirst virtual storage device.
 5. The storage device operation method ofclaim 4, wherein before sending the I/O request to the storage card, themethod further comprises: invoking, by the processor when receiving asecond setting instruction, a management interface of the client togenerate the M virtual storage devices; establishing, by the processor,a third correspondence between the physical interface and the virtualmachine; and establishing, by the processor, a fourth correspondencebetween the physical interface and the M virtual storage devices.
 6. Thestorage device operation method of claim 1, wherein the server isdeployed on the storage card.
 7. The storage device operation method ofclaim 1, wherein the server is deployed on a second physical server. 8.A first physical server comprising: a storage card inserted into thefirst physical server and comprising a client, wherein the client isdeployed on the storage card and is part of a distributed storagesystem; and a virtual machine configured to: receive a data read/writeinstruction; generate an input/output (I/O) request according to thedata read/write instruction; and send the I/O request to the storagecard, wherein the storage card directly communicates with the virtualmachine through a pre-established communication path between the virtualmachine and the client; wherein the client is configured to send, to aserver of the distributed storage system, the I/O request to prompt theserver to perform an I/O operation on a physical storage device.
 9. Thefirst physical server of claim 8, wherein the virtual machine is furtherconfigured to send, to a first virtual interface of the storage card,the I/O request, wherein the first virtual interface corresponds to thevirtual machine.
 10. The first physical server of claim 15, furthercomprising a processor configured to: invoke a first managementinterface of the storage card to generate N virtual interfaces whenreceiving a first setting instruction; invoke a second managementinterface of the client to generate M virtual storage devices, whereinthe N virtual interfaces comprise the first virtual interface, whereinthe M virtual storage devices comprise the first virtual storage device,and wherein both N and M are positive integers; establish a firstcorrespondence between the first virtual interface and the virtualmachine; and establish a second correspondence between the first virtualinterface and the first virtual storage device.
 11. The first physicalserver of claim 8, wherein the virtual machine is further configured tosend the I/O request to a physical interface of the storage card. 12.The first physical server of claim 16, further comprising a processorconfigured to: invoke a management interface of the client to generate Mvirtual storage devices when receiving a second setting instruction;establish a third correspondence between the physical interface and thevirtual machine; and establish a fourth correspondence between thephysical interface and the M virtual storage devices.
 13. The firstphysical server of claim 8, wherein the server is deployed on thestorage card.
 14. The first physical server of claim 8, wherein theserver is deployed on a second physical server.
 15. The first physicalserver of claim 9, wherein the first virtual interface is configured tosend, to a first virtual storage device in the client, the I/O request,and wherein the first virtual storage device corresponds to the firstvirtual interface.
 16. The first physical server of claim 11, whereinthe physical interface is configured to send the I/O request to a firstvirtual storage device.
 17. The first physical server of claim 8,wherein the storage card is a Peripheral Component Interconnect (PCI)card.
 18. The first physical server of claim 8, wherein the storage cardis a Peripheral Component Interconnect Express (PCIe) card.
 19. Thestorage device operation method of claim 1, wherein the storage card isa Peripheral Component Interconnect (PCI) card.
 20. The storage deviceoperation method of claim 1, wherein the storage card is a PeripheralComponent Interconnect Express (PCIe) card.